//
//  LQStatusViewModel.swift
//  Weibo
//
//  Created by ios on 16/8/12.
//  Copyright © 2016年 ios. All rights reserved.


import UIKit

class LQStatusViewModel: NSObject {
//  提供微博数据模型
    var status: LQStatuses?
    //  转发按钮
    var retweetButtonCount: String?
    //  评论按钮
    var commentButtonCount: String?
    //  赞按钮
    var unlikeButtonCount:  String?
    //  来源数据
    var sourceContent: String?
    //  转发微博内容
    var retweetContent: String?
    //  认证类型等级
    var verifiedTypeImg: UIImage?
    //  会员等级 1-6
    var mbrankImg: UIImage?
    //时间字符串处理
    var timeCount: String? {
        //  判断是否是今年
        //  判断是否是今天
        //  判断是否是1分钟之内
        //  - 刚刚
        //  判断是否是1小时之前
        //  - xx分钟前
        //  其它
        //  - xx小时前
        //  判断是否是昨天
        //  - 昨天 10:10
        //  其他
        //  - 08-09 10:10
        
        
        //  不是今年
        //  - 2014-08-13 10:10
    //获取发表微博时间
        guard let createDateStr = status?.created_at else {
          return nil
        }
        return NSDate.sinaDate(createDateStr).sinaDateString
    }
//        let dt = NSDateFormatter()
//         //  Sun Aug 14 06:20:33 +0800 2016"
//        dt.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
//        //  指定本地化信息
//        dt.locale = NSLocale(localeIdentifier: "en_US")
//        //字符串转对象
//        let createDate = dt.dateFromString(createDateStr)!
//            if isThisYear(createDate){
//            //判断是不是今天
//               let calendar = NSCalendar.currentCalendar()
//                if calendar.isDateInToday(createDate){
//                //是今天
//                    //距离现在的时间 秒
//                    let timeInterval = abs(createDate.timeIntervalSinceNow)
//                    if timeInterval < 60 {
//                     return "刚刚"
//                    } else if timeInterval < 3600 {
//                      let result = timeInterval / 60
//                        return "\(Int (result))分钟前"
//                    } else{
//                      let result = timeInterval / 3600
//                       return "\(Int (result))小时前"
//                    }
//                }else if calendar.isDateInYesterday(createDate){
//                //是昨天
//                    dt.dateFormat = "昨天 HH:mm"
//                }else{
//                //其它
//                    dt.dateFormat = "MM-dd HH:mm"
//                }
//            
//            }else{
//             //不是今年
//               dt.dateFormat = "yyyy-MM-dd HH:mm"
//            
//            }
//       return dt.stringFromDate(createDate)
//    }
//    
//    //判断是否是今年
//    private func isThisYear(createDate: NSDate) -> Bool {
//     let dt = NSDateFormatter()
//     dt.dateFormat = "yyyy"
//    //  指定本地化信息
//    dt.locale = NSLocale(localeIdentifier: "en_US")
//        //发微博年份
//     let createYear = dt.stringFromDate(createDate)
//        //当前年份
//     let currentYear = dt.stringFromDate(NSDate())
//        
//     return createYear == currentYear
//    
//    }
    
    //  通过重载构造函数初始化当前对象
    init(status:LQStatuses) {
        
        super.init()
        
        self.status = status
        
        retweetButtonCount = handleCount(status.reposts_count, originalTitle: "转发")
        commentButtonCount = handleCount(status.comments_count, originalTitle: "评论")
        unlikeButtonCount = handleCount(status.attitudes_count, originalTitle: "赞")
        
          //处理 微博来源
        shearSource(status.source ?? "")
        handleretweetContent(status)
          //处理会员等级
        handleMbank(status.user?.mbrank ?? 0)
        //  认证类型等级
        handleverifiedTypeImg(status.user?.verified_type ?? 0)
    }
     //  认证类型等级
    private func handleverifiedTypeImg(verifiedtype: Int){
    //  认证类型等级 -1 没有认证 ，0 认证用户，2，3，5 企业认证 ， 220 达人
        switch verifiedtype {
        case 0:
            verifiedTypeImg = UIImage(named: "avatar_vip")
        case 2,3,5:
            verifiedTypeImg = UIImage(named: "avatar_grassroot")
        case 220:
            verifiedTypeImg = UIImage(named: "avatar_enterprise_vip")
        default:
            verifiedTypeImg = nil
        }
    
    }
    
    //处理会员等级
    private func handleMbank(mbrank: Int){
        if mbrank > 0 && mbrank < 7{
            mbrankImg = UIImage(named: "common_icon_membership_level\(mbrank)")
        }else{
           
        }
    
    }
    
    
    //处理 微博来源
    private func shearSource(souse: String){
    //Optional("<a href=\"http://app.weibo.com/t/feed/1sxHP2\" rel=\"nofollow\">专业版微博</a>")
        if souse.containsString("\">") && souse.containsString("</") {
        //开始光标位置
        let startIndex = souse.rangeOfString("\">")!.endIndex
        //结束光标位置
        let endIndex = souse.rangeOfString("</")!.startIndex
    
        //  获取指定范围的字符串
        let result = souse.substringWithRange(startIndex..<endIndex)
            sourceContent = "来自: " + result

        }
    }
    
        //  处理转发微博内容的拼接逻辑
    private func handleretweetContent(status: LQStatuses){
        //  判断是否有转发微博内容
        if status.retweeted_status != nil {
            //  取到内容
            //  取到转发的用户昵称
            guard let text = status.retweeted_status?.text, let name = status.retweeted_status?.user?.screen_name else {
                return
            }
            
            //  拼接转发微博内容
            let result = "@\(name): \(text)"
            
            retweetContent = result
        }
        
        
    }
    
   //处理转发 评论 赞 按钮的逻辑问题
    private func handleCount(Count: Int, originalTitle:String) -> String{
        if Count > 0 {
            if Count >= 10000{
                
            let result = CGFloat(Count / 1000) / 10
            var resultStr = "\(result)万"
            //判断字符串是否含有0
                if resultStr.containsString("0"){
                  resultStr = resultStr.stringByReplacingOccurrencesOfString(".0", withString: "")
                }
            return resultStr
                
            }else{
            
                return "\(Count)"
            
            }
        }else{
            
          return originalTitle
            
        }
    
    }
}
